#ifndef __XLSX_h__
#define __XLSX_h__

#define MAX_COLS_PER_SHEET  256
#define MAX_SHEETS_PER_XLSX 10
typedef struct __json_sheet
{
  char name[64];                        //sheet名称
  char columns[MAX_COLS_PER_SHEET][8];  //保存Excel列序号: A,B,...,Z,AA,AB,...,AZ,BA,BB,...,BZ ... ...
  int nColumns;       //Excel列数量
  unsigned char ColumnsBitArray[MAX_COLS_PER_SHEET/8];
}JSON_SHEET;

typedef struct __config_variables
{
  char        xlsx[256];                    //Excel文件名
  JSON_SHEET  sheets[MAX_SHEETS_PER_XLSX];  //sheet配置表 存储空间
  char        sql[4096];                    //sql伪语句,需要后期将Excel列序号 翻译成 数据库字段名称
  int         nSheet;                       //需要处理的sheet数量
  char 		  itrsec[256];					//[可选项]多表连接查询用到的交集字段，避免重复插入操作
  #if 0
  char          objhead[32][256];			//目标Excel文件的Sheet头名称
  int 			nObjhead;
  #endif
  char 			objxlsx[256];
  char			objsheet[64];
}CFG_VAR;

extern long fstr_len(FILE* fp);
extern long fstr_alloc(FILE* fp, char** stream);
extern void fstr_free(char* fstrbuf);

extern int letter_to_int(char* column_idx);

extern void Mark(unsigned char *BitArray, int bit_no);
extern int ColumnUse(unsigned char *BitArray, int bit_no);

#endif
